package org.abc.fund.service.strategy.request.create_strategy;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import lombok.Data;
import org.abc.fund.entity.strategy.CombinationStrategy;

@Data
public class CreateStrategyRequest {
  @NotBlank(message = "策略名称不能为空")
  private String name;

  @NotNull(message = "策略类型不能为空")
  private CombinationStrategy.Type type;

  private String description;
  private String targetAudience;
  private String benchmark;

  @NotBlank(message = "风险等级不能为空")
  private String riskLevel;

  @Valid
  private RebalanceRuleRequest rebalanceRule;

  /** 组成基金 */
  @NotEmpty(message = "组成基金不能为空")
  @Valid
  private List<StrategyComponentRequest> components;
}
